package com.example.zrdemo1.controller;



import com.example.zrdemo1.service.ex.NullSexException;
import com.example.zrdemo1.service.ex.NullTokenException;
import com.example.zrdemo1.service.ex.NullUidException;
import com.example.zrdemo1.service.ex.UpdateException;
import com.example.zrdemo1.utils.JsonResult;
import org.springframework.web.bind.annotation.ExceptionHandler;

/**
 * 控制层类的基类
 * */
public class BaseController {

    public static final int OK = 200;   //操作成功的状态码

    //请求处理方法，这个方法的返回值就是需要传递到前端的数据
    //自动将异常对象传递到此方法的参数列表上
    //当项目中产生了异常，会被统一拦截到此方法中，这个方法就冲当的时请求处理方法，方法的放回值直接给到前端
@ExceptionHandler({RuntimeException.class})
public JsonResult<Void> handleException(Throwable e){
    JsonResult<Void> jsonResult = new JsonResult<>(e);
    if (e instanceof NullTokenException){
        jsonResult.setState(4000);
        jsonResult.setMessage(e.getMessage());
    }else if(e instanceof NullUidException){
        jsonResult.setState(4001);
        jsonResult.setMessage(e.getMessage());
    }else if (e instanceof UpdateException){
        jsonResult.setState(4002);
        jsonResult.setMessage(e.getMessage());
    }else if (e instanceof NullSexException){
        jsonResult.setState(4003);
        jsonResult.setMessage(e.getMessage());
    }



    return jsonResult;
}

}
